package br.com.mural.controle;

import java.util.ArrayList;
import java.util.List;

import br.com.mural.entidades.AlertaAusencia;
import br.com.mural.entidades.AlertaEmprego;
import br.com.mural.entidades.AlertaProva;
import br.com.mural.entidades.AlertaTroca;
import br.com.mural.entidades.Aviso;
import br.com.mural.entidades.Usuario;

public class AvisoDAOImpl extends DAOImpl<Aviso, Integer> implements AvisoDAO {
	public List<AlertaAusencia> getAllAlertaAusencia(){
		List<Aviso> avisos = new AvisoDAOImpl().getAll(Aviso.class);
		List<AlertaAusencia> alertas = new ArrayList<AlertaAusencia>();
		for(Aviso aviso: avisos){
			if(aviso.getClass().getSimpleName().equals("AlertaAusencia")){
				alertas.add((AlertaAusencia) aviso);
			}
		}
		return alertas;	
	}
	
	public List<AlertaEmprego> getAllAlertaEmprego(){
		List<Aviso> avisos = new AvisoDAOImpl().getAll(Aviso.class);
		List<AlertaEmprego> alertas = new ArrayList<AlertaEmprego>();
		for(Aviso aviso: avisos){
			if(aviso.getClass().getSimpleName().equals("AlertaEmprego")){
				alertas.add((AlertaEmprego) aviso);
			}
		}
		return alertas;	
	}
	
	public List<AlertaEmprego> getAllAlertaEmpregoByUsuario(int usuario_id){
		List<Aviso> avisos = new AvisoDAOImpl().getAll(Aviso.class);
		List<AlertaEmprego> alertas = new ArrayList<AlertaEmprego>();
		for(Aviso aviso: avisos){
			if(aviso.getClass().getSimpleName().equals("AlertaEmprego") && aviso.getUsuario().getId() == usuario_id){
				alertas.add((AlertaEmprego) aviso);
			}
		}
		return alertas;	
	}
	
	
	public List<AlertaAusencia> getAllAlertaAusenciaByUsuario(int usuario_id){
		List<Aviso> avisos = new AvisoDAOImpl().getAll(Aviso.class);
		List<AlertaAusencia> alertas = new ArrayList<AlertaAusencia>();
		for(Aviso aviso: avisos){
			if(aviso.getClass().getSimpleName().equals("AlertaAusencia") && aviso.getUsuario().getId() == usuario_id){
				alertas.add((AlertaAusencia) aviso);
			}
		}
		return alertas;	
	}
	
	public List<AlertaTroca> getAllAlertaTrocaByUsuario(int usuario_id){
		List<Aviso> avisos = new AvisoDAOImpl().getAll(Aviso.class);
		List<AlertaTroca> alertas = new ArrayList<AlertaTroca>();
		for(Aviso aviso: avisos){
			if(aviso.getClass().getSimpleName().equals("AlertaTroca") && aviso.getUsuario().getId() == usuario_id){
				alertas.add((AlertaTroca) aviso);
			}
		}
		return alertas;	
	}
	
	public List<AlertaProva> getAllAlertaProvaByUsuario(int usuario_id){
		List<Aviso> avisos = new AvisoDAOImpl().getAll(Aviso.class);
		List<AlertaProva> alertas = new ArrayList<AlertaProva>();
		for(Aviso aviso: avisos){
			if(aviso.getClass().getSimpleName().equals("AlertaProva") && aviso.getUsuario().getId() == usuario_id){
				alertas.add((AlertaProva) aviso);
			}
		}
		return alertas;	
	}
	
	public List<AlertaProva> getAllAlertaProva(){
		List<Aviso> avisos = new AvisoDAOImpl().getAll(Aviso.class);
		List<AlertaProva> alertas = new ArrayList<AlertaProva>();
		for(Aviso aviso: avisos){
			if(aviso.getClass().getSimpleName().equals("AlertaProva")){
				alertas.add((AlertaProva) aviso);
			}
		}
		return alertas;	
	}
	
	public List<AlertaTroca> getAllAlertaTroca(){
		List<Aviso> avisos = new AvisoDAOImpl().getAll(Aviso.class);
		List<AlertaTroca> alertas = new ArrayList<AlertaTroca>();
		for(Aviso aviso: avisos){
			if(aviso.getClass().getSimpleName().equals("AlertaTroca")){
				alertas.add((AlertaTroca) aviso);
			}
		}
		return alertas;	
	}
	
	public List<Aviso> findByUsuario(Usuario usuario){
		List<Aviso> avisos = new AvisoDAOImpl().getAll(Aviso.class);
		List<Aviso> lista = new ArrayList<Aviso>();
		for(Aviso aviso: avisos){
			if(aviso.getUsuario().equals(usuario)){
				lista.add(aviso);
			}
		}
		return lista;	
	}

}
